/************************************************************************
 * Copyright (c) 2008 Sergei Stolyarov
 * 
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 ************************************************************************/
#include <QtDebug>

#include "preferencesdialog.h"
#include "configholder.h"

PreferencesDialog::PreferencesDialog(QWidget * parent, Qt::WindowFlags f)
    : QDialog(parent, f)
{
    ui.setupUi(this);

    ConfigHolder* c = ConfigHolder::getInstance();

    // init controls
    ui.showLedsCheckbox->setChecked(c->showLedIcons());
    ui.criticalTemperatureGroupBox->setChecked(c->allowTemperatureNotifications());
    ui.criticalTemperatureSpinBox->setValue(c->criticalTemperature());
    ui.criticalTemperatureNotificationText->setPlainText(c->criticalTemperatureNotification());
}

void PreferencesDialog::on_okButton_clicked()
{
    // read controls and set preferences (settings)
    ConfigHolder* c = ConfigHolder::getInstance();

    c->setShowLedicons(ui.showLedsCheckbox->isChecked());
    c->setAllowTemperatureNotifications(ui.criticalTemperatureGroupBox->isChecked());
    c->setCriticalTemperature(ui.criticalTemperatureSpinBox->value());
    c->setCriticalTemperatureNotification(ui.criticalTemperatureNotificationText->toPlainText());
    accept();
}

void PreferencesDialog::on_cancelButton_clicked()
{
    reject();
}

void PreferencesDialog::on_testNotificationBalloon_clicked()
{
    // display testing balloon
    emit trayMenuBalloon(QString("Test notification balloon"), 
        ui.criticalTemperatureNotificationText->toPlainText(),
        QSystemTrayIcon::Information, 
        3000); // 3 sec
}

void PreferencesDialog::on_criticalTemperatureGroupBox_toggled(bool on)
{
    ui.criticalTemperatureWidget->setEnabled(on);
}
